Computer networks are typically comprised of a plurality of networks and may be defined at many levels of grouping and communication. A primary network, such as a LAN, may be characterized as a geographically localized network consisting of hardware and software. LANs link personal computers, workstations, printers, file servers and other peripherals over generally short distances. A secondary network may be thought of as two primary networks connected by a router. A tertiary network is defined as a network including at least first and second primary networks separated from each other by a third primary network (i.e., an intervening network). The third network is connected to the first network by one router and to the second primary network by another router.
In low level networking, several devices exchange data over a communication link such as hard wire, fiber-optic cable, radio frequency (RF) or the like, via network cards. A network card facilitates a data connection between the communication link and a device connected to the network (i.e., a personal computer, information appliance, personal data assistant, data-enabled wireless handset, or any other type of device capable of accessing information through a data network). The device (host) can be characterized as a node on the network. A server is a computer connected to a network through a network card and programmed to function as a traffic manager and storage apparatus for data communicated over the network from the nodes on the network. A network can have anywhere from a single to a plurality of servers, depending upon the configuration.
In a wireless communication system such as, for example, a WLAN, there is no hard wire connection between a node and a primary network. Each node (or mobile host) contains a network card for transmitting and receiving data over a wireless link. An access point bridges the gap between a hard wire associated with a primary network and the node connected by a wireless communication link with the primary network. The access point can be described as a transmitter and receiver for communicating between the network and the mobile node.
The layer or level concept for networked computing was developed by the International Organization for Standardization Open Systems Interconnection Model (ISO/OSI). The ISO/OSI model is a layered architecture that standardizes levels of service and types of interaction for computers exchanging data through a communications network. The ISO/OSI model encompasses seven layers or levels, each of which builds upon the standards contained in the layer(s) below it. From the lowest to the highest, layer 1 pertains to hardware or physical level links, layer 2, data link, layer 3, network, layer 4 transport, layer 5, session, layer 6, presentation and layer 7, application. The well-known TCP/IP protocol stack comprises the transport layer, network layer and some upper interfaces to the data link layer.
The transport layer receives data from the application layer and facilitates the flow of data between the application layers on the end systems. In the TCP/IP stack, two different transport protocols are utilized: the transmission control protocol (TCP) and the user Datagram protocol (UDP). TCP is a connection-oriented protocol that reliably transfers data between the source and destination. The TCP layer on the source establishes a connection with the TCP layer on the destination, and then the TCP layers transfer all packets over this connection. TCP guarantees that the data will be send correctly from the source to the destination. The TCP at the source divides the data received from the application layer into packets for the network layer, acknowledges all packets received, sets time-outs to ensure that lost data is retransmitted, and implements other functionality to make sure that the corresponding TCP layer at the destination receives data correctly from the application layer.
UDP is a connection-less protocol that provides unreliable data transfer. Upon receiving data from the application layer, UDP forms a packet known as a Datagram and sends the packet to the network layer for transfer to the destination without acknowledgments and no guarantee that the Datagrams will reach the destination.
The TCP/IP protocol stack is utilized to transfer data within a single network or within an internetwork (i.e., Internet) that is a collection of networks using the same protocol stack. An addressable application program that can be accessed through the TCP/IP protocol stack has an associated IP address specifying a host ID (identifying the computer on which the resource is located) and a network ID (identifying the network on which the computer is located). See, e.g., “INTERNET PROTOCOL,” IETF Network Working Group, RFC 791 (September 1981); S. Deering, R. Hinden, “Internet Protocol, Version 6 (IPv6) Specification,” IETF Network Working Group, RFC 1883 (December 1995), which are incorporated by reference herein.
IP is a Datagram-oriented protocol that encapsulates data into an IP packet for transmission, and attaches addressing information to the header of the packet. IP headers contain 32-bit addresses that identify the sending and receiving hosts. These addresses are utilized by intermediate routers to select a path through the network for the packet to travel to the ultimate destination at the intended address. In this connection, the initial prefixes of an IP address can be used for generalized routing decisions. IP addresses contain implied geographical information about the location of a particular host on the Internet. Thus, the IP protocol allows Datagrams from any Internet node to be routed to any other Internet node if the sender knows the IP address of the receiver.
With the large growth in mobile computing and network access, mobile IP has been growing in popularity. The IP addressing scheme used for regular Internet routing, however, is not compatible with mobile IP because the IP addressing scheme contains implicit geographic information. If a user desires to employ a fixed IP address to identity a mobile host, the IP packets destined for that mobile host will not be routed to the mobile host when it is away from its “home” network, the network that relates to its fixed IP address, unless the IP packets are forwarded to the mobile host in a special way that is not supported by the regular Internet routing scheme.
In order to address this concern, RFC 2002, entitled “IP Mobility Support,” 1996, specifies an enhanced protocol that enables the transparent routing of IP Datagrams to mobile hosts on the Internet. In accordance with RFC 2002, each mobile host can always be identified by its home IP address, irrespective of the current attachment point to the Internet. When disposed away from the home network, the mobile host can have an associated “care-of” address, which provides information that enables routing of Datagrams to the mobile host. RFC 2002 facilitates this by registering the care-of address with a “home agent.” The home agent forwards IP packets destined for the mobile host using a technique referred to as “IP tunneling.” The home agent attaches a new IP header containing the care of address to any IP packet having a destination address corresponding to the mobile host's home IP address. A “foreign agent” at the care of address strips off the IP tunneling header and sends the Datagram to the mobile host at the current point of attachment to the Internet via a special link layer routing method, or the mobile host serves as a “foreign agent” for itself and strips off the IP tunneling header before passing the data to the upper layer.
Mobile IP requires the IP stack on the mobile host to be modified. Because most operating systems, like Windows, are designed for “static” computers, there is no need to have this functionality built in, especially since Mobile IP based networks are not very popular. Moreover, the operating systems that support Mobile IP require specialized knowledge and must be specially configured by a mobile user. It is, therefore, advantageous to provide a method and intelligent interface for a mobile host that supports IP networking functions to enable the mobile host to connect to a plurality of networks, without having to change the mobile host's operating system.